/******************************************************************************
 * Description: -- 安装, 最多安装两分钟
 * Last modified: 2020-02-06 13:04
******************************************************************************/
let constant = require("./constant.js");
var loopCount = 2 * 60 * 1000 / 2000;
//auto.waitFor();
// let $exis = app.C.require('lib/utils/apk/exists')

module.exports = function (_path_, pkg) {

    let ex = new java.util.concurrent.Exchanger();

    app.viewFile(_path_);
    console.log("inner 安装开始", _path_)
    constant.SIMPLE_THREAD.execute(function () {
        while(true){
            
            console.log("inner 安装中", _path_);
            try { if (!text('始终允许').findOne(400).click()) { click('始终允许'); } } catch (e) { }
            try { if (!text('允许').findOne(400).click()) { click('允许'); } } catch (e) { }
            try { if (!text('继续安装').findOne(400).click()) { click('继续安装'); } } catch (e) { }
            try { if (!text('安装').findOne(400).click()) { click('安装'); } } catch (e) { }
            // try { if (text('完成').findOne(400).click()) { sleep(500); try{ex.exchange(null);}catch(e){} console.log("inner 安装完成!", _path_); return; } } catch (e) { }
            if(pkg && app.getAppName(pkg) != null){
                log("查找完成按钮 直到出现", pkg);
                while(! (text('完成').findOne(400) && text('完成').findOne(400).click())){
                    try { if (!text('安装').findOne(400).click()) { click('安装'); } } catch (e) { }
                    sleep(400);
                }
                console.log("通过检查pkg 来确定安装状态");
                try{ex.exchange(null,2, java.util.concurrent.TimeUnit.MILLISECONDS);}catch(e){} console.log("inner 安装完成!", _path_); 
                return;
            }
            sleep(2000);
        }
    })
    // var _Interval;
    // threads.start(function(){
    //     _Interval = setInterval(function () {
    //         console.log("install...");
    //         try { if (!text('始终允许').findOne(400).click()) { click('始终允许'); } } catch (e) { }
    //         try { if (!text('允许').findOne(400).click()) { click('允许'); } } catch (e) { }
    //         try { if (!text('继续安装').findOne(400).click()) { click('继续安装'); } } catch (e) { }
    //         try { if (!text('安装').findOne(400).click()) { click('安装'); } } catch (e) { }
    //         try { if (text('完成').findOne(400).click()) { sleep(500); ex.exchange(null); return; } } catch (e) { }
    //     }, 2000);
    // })
    // ex.exchange(null, 2, java.util.concurrent.TimeUnit.MINUTES);
    // threads.start(function(){
    //     console.log("_Interval:", _Interval);
    //     clearInterval(_Interval);
    // })
    
    // setInterval(()=>{

    // }, 2000);
    // let $inter = setInterval(()=>{
    //     }, 2000);
    // });
    ex.exchange(null);

}
